#define _GNU_SOURCE
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>

// 线程的回调函数
void *thread1_callback(void *arg)
{    int i =100;
    while (i-- >0)
    {
        printf("thread1 is running:%d \n  ",gettid());
        sleep(1);
    }
    //pthread_exit()
    return NULL;
}
void *thread2_callback(void *arg)
{   int i =100;
    while (i-- >0)
    {    
        printf("thread2 is running:%d\n",gettid());
        sleep(1);
    }
    return NULL;
}

// main 线程
// n声明两个pthread_t  对象
// 把pthread_t 地址交给pthread_create 方法      属性（NULL)  ,执行的回调函数 ，方法参数
int main(int argc, char const *argv[])
{
    //  声明两个pthread_t  对象
    pthread_t ptid1, ptid2;
    // 创建线程
    pthread_create(&ptid1, NULL, thread1_callback, NULL);
    pthread_create(&ptid2, NULL, thread2_callback, NULL);
    
    // 1 主进程自己保证长时间 存在 ，或者2  等待线程结束
     sleep(3);
     pthread_cancel(ptid1);
   // pthread_join(ptid1, NULL);
   // pthread_join(ptid2, NULL);
    

    sleep(50);
    return 0;
}
